package cn.iocoder.yudao.module.reading.dal.dataobject.book;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.reading.enums.common.LanguageEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.*;

import java.util.List;

/**
 * 绘本页面 DO
 *
 * @author 芋道源码
 */
@TableName(value = "book_pages", autoResultMap = true)
@KeySequence("book_pages_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BookPageDO extends BaseDO {

    /**
     * 页面ID
     */
    @TableId
    private Long id;
    /**
     * 绘本ID
     */
    private Long bookId;
    /**
     * 页码（从1开始）
     */
    private Integer pageNumber;
    /**
     * 页面图片URL（绘本图像）
     */
    private String imageUrl;
    /**
     * 图片宽度（像素）
     */
    private Integer imageWidth;
    /**
     * 图片高度（像素）
     */
    private Integer imageHeight;
    /**
     * 页面文字内容（文字版绘本）
     */
    private String textContent;
    /**
     * 中文翻译内容（英文绘本的中文翻译）
     */
    private String chineseTranslation;
    /**
     * 文本语言类型
     *
     * 枚举 {@link LanguageEnum}
     */
    private String textLanguage;
    /**
     * 官方音频URL
     */
    private String officialAudioUrl;
    /**
     * 音频时长（秒）
     */
    private Integer audioDuration;
    /**
     * 阅读难度
     */
    private String readingDifficulty;
    /**
     * 重点词汇列表
     */
    @com.baomidou.mybatisplus.annotation.TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> keyWords;
    /**
     * 是否启用
     */
    private Boolean isActive;

}
